package com.victor.netty.fourexample;

import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
import io.netty.handler.timeout.IdleStateEvent;

/**
 * Created by DJJ on 2019/6/1.
 */
public class MyHandler extends ChannelInboundHandlerAdapter {

    @Override
    public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
            if (evt instanceof IdleStateEvent){
                IdleStateEvent event=(IdleStateEvent)evt;
                String eventType=null;
                switch (event.state()){
                    case READER_IDLE:
                        eventType="读空闲";//过了5秒,客户端未向客户端发送任何数据,这时候,服务端报这个
                        break;
                    case WRITER_IDLE:
                        eventType="写空闲";//客户端不断的给服务端写数据,服务端在这个时间内时不会读空闲,但是服务端没给客户端返回任何数据
                        break;
                    case ALL_IDLE:
                        eventType="读写空闲";//在规定时间内只要没有读或者写
                        break;

                }
                System.out.println(eventType);
                ctx.channel().close();
            }
    }
}
